#ifndef WIFI_CONNECTION_H
#define WIFI_CONNECTION_H

typedef struct wifi_info {
    char ssid[64];      // Wi-Fi SSID
    char password[64];  // Wi-Fi 密码
    char ip[16];        // Wi-Fi IP 地址
} wifi_info;

// Callback function type
typedef void (*wifi_mode_cb)(int mode, wifi_info *wifi_info); // AP | STA
typedef void (*wifi_connect_cb)(int status); // 连接状态, connecting, connected, disconnected

typedef struct wifi_cabllback {
    wifi_mode_cb wm_cb;
    wifi_connect_cb wc_cb;
}wifi_cabllback;

// 定义 wifi_opt 结构体，用于适配不同框架的 Wi-Fi API
typedef struct wifi_opt_t {
    // 包含(读配置， 连接, 设置回调)  
    void (*setup)(wifi_cabllback *wc_cb);
    // 纯wifi 连接 
    void (*connect)(const char *ssid, const char *password);
    // 清除 Wi-Fi 配置的函数指针
    void (*clear)();
} wifi_opt_t;

#endif
